package com.platform.web.service;


import com.platform.common.base.Page;
import com.platform.web.model.Permission;
import com.platform.web.model.Role;
import com.platform.web.model.RoleUser;

import java.util.List;
import java.util.Map;

/**
 * 系统角色接口类
 * 
 * @author LiangMingHui
 *
 */
public interface IRoleService {

	/**
	 * 获取用户权限
	 *
	 * @param userId
	 *            用户ID
	 * @return
	 * @throws Exception
	 */
	List<Permission> getPermissionsByUserId(String userId) throws Exception;

	/**
	 * 获取角色权限
	 *
	 * @param roleId
	 * @return
	 * @throws Exception
	 */
	List<Permission> getRolePermissionsList(String roleId) throws Exception;

	/**
	 * 删除角色
	 *
	 * @param id
	 * @return
	 * @throws Exception
	 */
	int deleteByPrimaryKey(String id) throws Exception;

	/**
	 * 添加角色
	 *
	 * @param record
	 * @return
	 * @throws Exception
	 */
	int insert(Role record) throws Exception;

	/**
	 * 添加角色(条件添加)
	 *
	 * @param record
	 * @return
	 * @throws Exception
	 */
	int insertSelective(Role record) throws Exception;

	/**
	 * 根据角色ID,获取角色信息
	 *
	 * @param id
	 * @return
	 * @throws Exception
	 */
	Role selectByPrimaryKey(String id) throws Exception;

	/**
	 * 根据角色code，获取角色信息
	 *
	 * @param roleCode
	 * @return
	 * @throws Exception
	 */
	Role selectByRoleCode(String roleCode) throws Exception;

	/**
	 * 修改角色(条件修改)
	 *
	 * @param record
	 * @return
	 * @throws Exception
	 */
	int updateByPrimaryKeySelective(Role record) throws Exception;

	/**
	 * 修改角色
	 *
	 * @param record
	 * @return
	 * @throws Exception
	 */
	int updateByPrimaryKey(Role record) throws Exception;

	/**
	 * 分页查询角色数据
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	Page<Role> selectRoleByPage(Map<String, Object> map) throws Exception;

	/**
	 * 分页查询角色数据2
	 *
	 * @param map
	 *            参数列表
	 * @param pageBean
	 *            分页参数
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> selectRoleByPage(Map<String, Object> map, Page<Object> pageBean) throws Exception;

	/**
	 * 批量删除角色
	 *
	 * @param ids
	 *            角色ID值列表
	 * @return 删除列表结果
	 */
	int deleteBatchRoleByIds(List<String> ids) throws Exception;

	/**
	 * 批量插入角色权限
	 *
	 * @return
	 */
	int insertBatchRolePermission(Role roles) throws Exception;

	/**
	 * 获取所有角色
	 *
	 * @return
	 */
	List<Role> selectAllRoleList() throws Exception;

	/**
	 * 获取用户角色信息
	 *
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	List<Role> getUserRoleList(String userId) throws Exception;

	/**
	 * 批量插入用户角色
	 *
	 * @param roleUserList
	 * @return
	 * @throws Exception
	 */
	int insertBatchRoleUser(List<RoleUser> roleUserList, String userId) throws Exception;
}
